/**
*	@class COpenGLTexture2D
*
*	@brief
*
*	@author William McVicar
*/

#pragma once

#ifndef __OPENGLTEXTURE2D_H_INCLUDED__
#define __OPENGLTEXTURE2D_H_INCLUDED__

//  Library Includes

//  Local Includes

//  Macros

//  Forward Declarations
namespace{ class TextureBase; }

//  Types

//  Constants

//  Prototypes

namespace Protein
{

class Texture2D
{
friend class TextureManager;
	//Member Functions
public:

	void Enable();
	void Disable();

protected: 

private: 

	Texture2D( TextureBase* pBase );
	~Texture2D();

	//Member Variables
public:

protected: 

private: 

	TextureBase*	m_textureBase;

	u32				m_textureID;

};

#include "OpenGLTexture2D.inl"

}

#endif //__OPENGLTEXTURE2D_H_INCLUDED__
